Skip to main content

Full text of "victor :: victor9000 :: appNote002 Mar83"

See other formats


SUPPLEMENTAL TECHNICAL REFERENCE MATERIAL 

APPLICATION NOTE: 002 

Revision 



lev 3 - 3/2 3/S3 



COPYRIGHT 



c) 



bv VICTOR 



All rights reserved. This pub 
proprietary information which i; 
copyright. No part 



i c ation contain s 
protected b y t h i s 
£ this publication may be 
reproduced, transcribed, stored in a retrieval 
system, translated into any language or computer 
language, or transmitted in any form whatsoever 
without the prior written consent of the 
publ isher . 
For information contact: 



VICTOR Publications 
380 El Pueblo Road 
Scotts Valley, CA 95066 
(408) 438-6680 



TRADEMARKS 



VICTOR is a 
Techno log ies, 



registered 
Inc. 



trademark of Victor 



NOTICE 




VICTOR reserves the right to revise this 
publication from time to time and to make changes 
in the content hereof without obligation to notify 
any person of such revision or changes. 



First VICTOR printing March 1983. 



Rev 7\ 



3/23/ :-3 



CONTENTS 



Victor 9000 System Overview Page Rev 

1.1 Computer 1-1 

1 . 2 Memory 1-1 

1.3 Disk System 1-2 

1.4 Display System 1-3 3 

1.5 Keyboard 1-4 

1.6 Memory Map 1-5 

1.6.1 MS-DOS 1-6 

1.6.2 CP/M-86 1-7 



2. Display Driver Specifications 

2.1 Overview 2-1 

2.2 Screen Control Sequences 2-2 

2.3 Multi-Character Escape Sequences 2-3 

2.3.1 Cursor Functions 2-3 

2.3.2 Editing Functions 2-4 

2.3.3 Configuration Functions 2-6 

2.3.4 Operation Mode Functions 2-7 

2.3.5 Special Functions 2-8 

2.4 Direct Cursor Addressing - Examples .... 2-10 

2.4.1 Microsoft MS-BASIC 2-10 

2.4.2 Microsoft MACRO-86 2-11 

2.4.3 Microsoft MS-Pascal 2-12 

2.5 Transmit Page - Examples 2-13 

2.5.1 Microsoft MS-BASIC 2-13 

2.5.2 Microsoft MACRO-86 2-14 

2.5.3 Microsoft MS-Pascal 2-15 



Input/Output Port Specifications 

3.1 Device Connection 

3.2 Parallel Printer Connection 

3.3 Parallel Cable Requirements 

3.4 Serial Printer Connection 

3.5 Serial Cable Requirements 

3.6 Operating System Port Utilities ..... 

3.6.1 SETIO - List Device Selection . 

3.6.2 STAT - List Device Selection .. 

3.6.3 PORTSET - Baud Rate Selection 

3.6.4 PORTCONF - Baud Rate Selection 

3.7 Serial Input/Output Ports 

3.8 Baud Rate / Transmission - Examples 

3.8.1 Microsoft MS-BASIC 

3.8.2 Microsoft MACRO-86 



3-1 





3-2 





3-2 





3-3 





3-4 





3-5 





3-5 





3-5 





3-6 





3-6 





3-7 


3 


3-8 





3-9 





3-11 


3 



Rev 3 - 3/23, 



CONTENTS 
continued 



Appendices Page Rev 

Appendix A: ASCII Codes 

A.l ASCII Codes used in the Victor 9000 A-l 

A. 2 ASCII/Hex/Decimal Chart A- 2 

Appendix B: Keyboard 

B.l Victor 9000 Keyboard Layout B-l 

Appendix C: Input/Output Ports 

C.l Parallel (Centronics) Port C-l 

C.2 Serial (RS232C) Port C-2 

C.3 IEEE-488 Port C-3 

C.4 Control Port C-4 

Appendix D: Assembler Examples 

D.l MACRO-86 Assembler Shell D-l 

D.2 ASM-86 Assembler Shell D-2 

Appendix E: File Header Structure 

E.l EXE File Header Structure E-l 



Appendix F: Victor 9000 Specifications 

F.l Technical Specifications F-l 

F.2 Physical Specifications 



F-2 



Appendix G: Glossary 

G.l Glossary of Terms G-l 



II Rev - 3/23/S3 



i ',.: u i 



CHAPTER 1 



Victor 9000 System Overview 



1.1 Computer 



The Victor 9000 computer is based upon the Intel 8088 16-bit 
microprocessor. This processor chip is directly related to 
the Intel 8086 16-bit microprocessor, but with two subtle 
differences : 

8088 8086 

8-bit data bus 16-bit data bus 

4 instruction look-ahead 6 instruction look-ahead 

The major difference, the 8-bit data bus, has some effect on 
the relative abilities of the two chips; the main difference 
is that while the 8086 can load an entire 16-bit word of 
data directly, the 8088 has to load two 8-bit bytes to 
achieve the same result - the outcome of which being that 
the 8088 processor is a little slower than the 8085. The 
loss of speed, however, is balanced by the fact that the 
cost of the main circuit board and add-on boards are lower 
than for the wider 8086 requirement. This means that the 
end-user will have the best cost/performance ratio for a 16- 
bit computer. 



1.2 Memory 



The Victor 9000 has a maximum memory capacity of 896 
kilobytes of Random Access Memory or "RAM" (a measure of a 
computer's internal storage capacity; a "kilobyte" is 1,024 
bytes). A byte is able to store one character of data - thus 
the Victor 9000, with full 895k memory capacity is able to 
hold, internally, nearly 1 million characters - compare this 
figure with the older Z80 or 6502 computers that have a 
maximum memory capacity of less than 70,000 characters or 
64k bytes of RAM. 



1-1 Rev - 3/2 3/3 3 



S i j p p I e in e n t .1 J 'I ■..- ■.: i 1 1 1 i 



1.3 Disk System 

The Victor 9000 has several 
available; these are: 



integral disk configurations 



o Twin single-sided 600k bytes per drive 5 1/4-inch 

mini floppies, giving a total capacity of 1.2Mbytes 
(l,200kbytes) available on-line. 

o Twin double-sided 1.2M bytes per drive 5 1/4-inch 

minif loppies, giving a total capacity of 2.4Mbytes 
(2,400kbytes) available on-line. 

o Single 10M byte hard disk (Winchester) plus a 

single double-sided 1.2M byte 5 1/4-inch mini- 
floppy, giving a total capacity of 11.2Mbytes 
(ll,200kbytes) available on-line. 

Future disk systems will include an external 10Mbyte hard 
disk (Winchester) that will allow expansion of any of the 
above systems by a further 10,000k bytes. 

Although the Victor 9000 uses 5 1/4-inch minifloppies of a 
similar type to those used in other computers, the floppy 
disks themselves are not readable on other machines, nor can 
the Victor 9000 read a disk from another manufacturers 
machine. The Victor 9000 uses a unique recording method to 
allow the data to be packed as densely as 600kbytes on a 
single-sided single-density minifloppy; this recording 
method involves the regulation of the speed at which the 
floppy rotates, explaining the fact that the noise from the 
drive sometimes changes frequency. 



1-2 



Rev - 3/2 3/3 3 



1 O P ! 



1.4 Display System 

The display unit swivels and tilts to [permit optimum 
adjustment of the viewing angle, and the unit incorporates a 
12-inch antiglare screen to prevent eye strain. The display, 
in normal mode, is 25 lines, each line having 80 columns. 
Characters are formed, in normal mode, in a 10-X-16 font 
cell, providing a highly-readable display. The screen may be 
used in high-resolution mode, providing a bit-mapped screen 
with 800-X-400 dot matrix resolution. The high-resolution 
mode is available only under software control, there is no 
means of simply "switching" in to high-resolution. Victor 
Technologies has provided software to allow full use of the 
screen. in high-resolution mode in the Graphics Tool Kit. 

Character sets are "soft" - that is they may be substituted 
for alternative character sets of the users choice, or 
creation. Only one 2 56-cha r ac te r character set may be 
displayed on the screen at one time - multiple character 
sets cannot, currently, be displayed simultaneously - but 
this feature may well become available in the future. 
Character set manipulation software is available in both the 
Graphics and Programmers Tool Kits. 



- ] 



Rev 



- 3/2 3/8 3 



1.5 Keyboard 



palm rest 
permitting 
country in 



Several different types of keyboards are offered. Each 
keyboard is a separate, low-profile module with an optional 

for ease of use. Every key is programmable, 
the offering of a National keyboard in each 

which it is marketed. As a result, the keyboard 
can be 'customi zed to satisfy the requirements of foreign 
languages and so that striking a key enters a character or 
predetermined set of commands. 

Keyboards are as soft as the character sets - this allows a 
keyboard to be generated to match a newly created or special 
character set. Each key on the keyboard has three potential 
states; the unshifted, shifted and alternate. The unshifted 
mode is accessed when the shift key is not depressed along 
with the desired key; the shifted mode is accessed when the 
shift key is depressed along with the desired key; and the 
alternate mode is accessed when the ALT key is depressed 
along with the desired key. Keyboard manipulation software 
is available in both the Graphics and Programmers Tool Kits. 



1-4 



Rev - 3/23/8 3 



Lipu 



1.6 Memory Map 

The Victor 9000 is currently supplied with two major disk 
operating systems; CP/M-86 from Digital Research, and MS-DOS 
from Microsoft. Athough these two operating systems appear 
superficially similar, they are quite different in their 
operation, program interfacing techniques, and their memory 
structure. The following diagrams are the memory maps for 
CP/M-86 and MS-DOS; you will notice that some aspects of 
the machine never change, such as the screen RAM and 
interrupt vector locations, these areas are hardware 
defined, and as such never alter. The memory maps for MS-DOS 
and CP/M-86 are not fixed in the Victor 9000, thus some of 
the elements of the map will not be specific; this is not to 
be deliberately vague, but improvements to the performance 
aspects of the software do take place forcing the diagrams 
to be unspecific to some degree. 



1-5 Rev - 3/23/33 



uooiamenca 



1.6.1 Memory Map — MS-DOS Operating System 



FFFFF 
FC00 0_ 



F4000 



F0000 



E0000. 



etc . 

256k=3FFF0 

128k=lFFF0 



00480. 
040 0. 

00000 



Boot Proms 



Reserved for Future Expansion 



Screen High-Speed Static RAM 



Memory-Mapped I/O Space 



BIOS 



Operating System 



MS-DOS 



. Command - Resident Portion 



Command - Transient Portion 



Transient Program Area (TPA) 



Alternate Character Set 



128 Character Set 



Logo 



"Stub" - Jump Vectors 



Interrupt Vector Table 



4k bytes 
4k bytes 
2k bytes 
128 bytes 
Ik bytes 



1-6 



Rev - 3/23/83 



Supplemental Technical Reference Materia. 



1.6.2 Memory Map — CP/M-86 Operating System 



FFFFF 
FC000_ 
F4000_ 
F0000. 

E0000, 



480_ 



00400_ 
00000 



Boot Proms 



Reserved for Future Expansion 



Screen High-Speed Static RAM 



Memory-Mapped I/O Space 



Operating System 



BIOS 
BDOS 



Transient Program Area (TPA) 



Alternate Character Set 



128 Character Set 



Logo 



'Stub" - Jump Vectors 



Interrupt Vector Table 



4k bytes 
4k bytes 
2k bytes 
128 bytes 
Ik bytes 



1-7 



Rev - 3/23/83 



Supplemental Technical Reference 



''later idi 



CHAPTER 2 



Display Driver Specifications 



2.1 Overview 



The display system in the Victor 9000 is, like so much of 
the machine, soft. The operating system BIOS contains the 
Zenith H-19 video terminal emulator, which is an enhanced 
control set of the DEC VT52 crt. The BIOS takes all ASCII 
characters received and either displays them or uses their 
control characteristics. The control characters 00hex 
(00decimal) thru lFhex (31decimal) and 7Fhex (127decimal) 
are not displayed under normal circumstances. The non- 
display characters previously discussed, plus those 
characters having the high-bit set, being 80hex (128decimal) 
through FFhex ( 255dec ima 1 ) , may be displayed on the screen 
under program control, but extensive use of these characters 
is easier with the Victor Technologies character graphics 
utilities. 

Most of the control characters act by themselves; for 
example, the TAB key (Control I, 09hex, 09decimal) will 
cause the cursor to move to the right to the next tab 
position. For more complex cursor/screen control the 
multiple character escape sequences should be used. The 
control characters, and the escape sequences are fully 
described below. 



2-1 Rev - 3/23/33 



Supplemental Technical Reference Material 



2.2 Screen Control Sequences 

Single Control Characters 

Bell (Control G, 07hex, 07decimal - ASCII BEL) 

This ASCII character is not truly a displaying 
character, but causes the loudspeaker to make a beep. 

Backspace (Control H, 08hex, 08decimal - ASCII BS) 

Causes the cursor to be positioned one column to the 
left of its current position. If at column 1, it causes 
the cursor to be placed at column 80 of the previous 
line; if the cursor is at column 1, line 1, then the 
cursor moves to column 80 of line 1. 

Horizontal Tab (Control I, 09hex, 09decimal - ASCII HT) 

Positions the cursor at the next tab stop to the right. 
Tab stops are fixed, and are at columns 9, 17, 25, 33, 
41, 49, 57, 65, and 72 through 80. If the cursor is at 
column 80, it remains there. 

Line Feed (Control J, 0Ahex, 10decimal - ASCII LF) 

Positions the cursor down one line. If at line 24, then 
the display scrolls up one line. This key may be 
treated as a carriage return — see ESC x9 . 

Carriage Return (Control M, 0Dhex, 13decimal - ASCII CR) 

Positions the cursor at column 1 of the current line. 
This key may be treated as a line feed — see ESC x8 . 

Shift Out (Control N, 0Ehex, 14decimal - ASCII SO) 

Shift out of the standard system character set, and 
shift into the alternative system character set 
(Character set 1, Gl). This gives the ability to access 
and display those characters having the high-bit set - 
being those characters from 80hex (128decimal) through 
FFhex (255decimal) . 

Shift In (Control 0, 0Fhex, 15decimal - ASCII SI) 

Shift into the standard system character set (Character 
set 0, G0). This gives the ability to access and 
display the standard ASCII character set - being those 
characters from 00hex (00decimal) through 7Fhex 
(127decimal) . 



2-2 Rev - 3/23/33 



Supplemental Technical Reference Materia 



2.3 Multi-Character Escape Sequences 



2.3.1 Cursor Functions 



Escape 
Sequence/Function 

ESC A 



ESC B 



ESC C 



ESC D 



ESC H 



ESC I 



ESC Y 1 c 



ESC j 



ESC k 



ESC n 



ASCII Code 

IB, 41hex 
27, 65dec 

IB, 42hex 
27, 66dec 

IB, 43hex 
27, 67dec 

IB, 44hex 
27, 68dec 

IB, 48hex 
27, 72dec 



IB, 49hex 
27, 73dec 



IB, 59hex 
27, 89dec 



IB, 6Ahex 
27, 106dec 



IB, 6Bhex 
27, 107dec 



IB, 6Ehex 
27, 110dec 



Performed Function 

Move cursor up one line 
without changing column. 

Move cursor down one line 
without changing column. 

Move cursor forward one 
character position. 

Move cursor backward one 
character position. 

Move cursor to the home 
position. Cursor moves to line 
1 , col umn 1. 

Reverse index. Move cursor up 
to previous line at current 
column position. 

Moves the cursor via direct 
(absolute) addressing to the 
line and column location 
described by '1' and 'c'. The 
line ('1') and column ('c') 
coordinates are binary values 
offset from 20hex (32decimal) . 
(For further information on 
the use of direct addressing 
see section 2.4) . 

Store the current cursor 
position. The cursor location 
is saved for later restoration 
(see ESC k) . 

Returns cursor to the 
previously saved location (see 
ESC j) . 

Return the current cursor 
position. The current cursor 
location is returned as line 
and column, offset from 20hex 
(32decimal), in the next 
character input request. 



2-3 



Rev - 3/23/33 



Supplemental Technical Reference Mater 



1 a 1 



2.3.2 Editing Functions 



Escape 
Sequence/Function 

ESC 9 



ASCII Code 

IB, 40hex 
27, 64dec 



Performed Function 

Enter the character insert 
mode. Characters may be added 
at the current cursor 
position, as each new 
character is added, the 
character at the end of the 
1 ine is lost. 



ESC E 



ESC J 



ESC K 



ESC L 



ESC M 



ESC N 



ESC 



ESC b 



IB, 45hex 

27, 69dec 

IB, 4Ahex 

27, 74dec 



IB, 4Bhex 
27, 75dec 



IB, 4Chex 
27, 76dec 



IB, 4Dhex 
27, 77dec 



IB, 4Ehex 
27, 78dec 



IB, 4Fhex 

27, 79dec 

IB, 62hex 

27, 98dec 



Erase the entire screen. 



Erase from the current cursor 
position to the to the end of 
the screen. 

Erase the screen from the 
current cursor position to the 
end of the line. 

Insert a blank line on the 
current cursor line. The 
current line, and all 
following lines are moved down 
one, and the cursor is placed 
at the beginning of the blank 
line . 

Delete the line containing the 
cursor, place the cursor at 
the start of the line, and 
move all following lines up 
one - a blank line is inserted 
at line 24. 

Delete the character at the 
cursor position, and move all 
other characters on the line 
after the cursor to the left 
one character position. 

Exit from the character insert 
mode (see ESC §) . 

Erase the screen from the 
start of the screen up to, and 
including, the current cursor 
position . 



2-4 



Rev - 3/23/83 



Supplemental Technical Reference Material 

2-3.2 Editing Functions — continued 

Escape 
Sequence/Function ASCII Code Performed Function 

ESC i IB, 6Chex Erase entire current cursor 

27, 108dec line. 

E SC o IB, 6Fhex Erase the beginning of the 

27, llldec line up to, and including, the 

current cursor position. 



2-5 Rev - 3/23/33 



Supplemental Technical Reference Material 



2.3.3 Configuration Functions 

ASCII Code 



Escape 
Sequence/Function 



ESC x Ps 



IB, 78hex 
27, 120dec 

31hex, 49dec 

33hex, 51dec 

34hex, 52dec 

35hex, 53dec 

38hex, 56dec 

39hex, 57dec 

41hex, 65dec 
42hex, 66dec 
43hex, 67dec 



Performed Function 



Sets mode(s) as follows: 



Ps 
1 

3 

4 
5 
8 



A 
B 
C 



Mode 



Enable 25th line 
Hold screen mode on 
Block cursor 
Cursor off 

Auto line feed on receipt 
of a carriage return. 
Auto carriage return on 
receipt of line feed 
Increase audio volume 
Increase CRT brightness 
Increase CRT contrast 



ESC y Ps 



IB, 79hex 


Re 


27, 120dec 






Ps 


31hex, 49dec 


1 


33hex, 51dec 


3 


34hex, 52dec 


4 


35hex, 53dec 


5 


38hex, 56dec 


8 



39hex, 57dec 



41hex, 
42hex, 
43hex, 



65dec 
66dec 
67dec 



Resets mode(s) as follows 



Mode 

Disable 25th line 
Hold screen mode off 
Underscore cursor 
Cursor off 

No auto line feed on rec- 
eipt of a carriage return. 
No auto carriage return on 
receipt of line feed 
Decrease audio volume" 
Decrease CRT brightness 
Decrease CRT contrast 



A 

B 
C 



ESC [ 
ESC \ 

ESC " 



IB, 5Bhex 
27, 91dec 



IB, 
27, 



5Chex 
92dec 



IB, 5Ehex 
27, 94dec 



Set hold mode 



Clear hold mode 



Toggle hold mode on/off, 



2-6 



Rev 



- 3/23/83 



Supplemental Technical Reference (Material 

2.3.4 Operation Mode Functions 

Escape 
Sequence/Function ASCII Code Performed Function 

ESC ( IB, 28hex Enter high intensity mode. All 

27, 40dec characters displayed after 
this point will be displayed 
in high-intensity. 

ESC ) IB, 29hex Exit high intensity mode. 

IB, 41dec 

ESC IB, 30hex Enter underline mode. All 

27, 48dec characters displayed after 

this point will be underlined. 

ESC 1 IB, 31hex Exit underline mode. 

27, 49dec 

ESC p IB, 70hex Enter reverse video mode. All 

27, 112dec characters displayed after 

this point will be displayed 
in reverse video. 

ESC q IB, 71hex Exit reverse video mode. 

27, 113dec 



2-7 Rev - 3/23/83 



Supplemental Technical Reference Material 
2.3.5 Special Functions 

Performed Function 



Escape 
Sequence/Function 


ASCII Code 


ESC # 


IB, 23hex 
27, 35dec 



Return the current contents of 
the page. The entire contents 
of the screen are made 
available at the next 
character input request(s). 
(For further information on 
the use of this function, see 
section 2.5). 

ESC $ IB, 24hex Return the value of the 

27, 36dec character at the current 

cursor position. The .character 
is returned in the next 
character input request. 

ESC + IB, 2Bhex Clear the foreground. Clear 

all high-intensity displayed 
characters . 

ESC 2 IB, 32hex Make cursor blink. 



IB, 


2Bhex 


27, 


43dec 


IB, 


32hex 


27, 


50dec 


IB, 


33hex 


27, 


51dec 


IB, 


38hex 


27, 


56dec 



ESC 3 IB, 33hex Stop cursor blink. 

27, 51dec 

ESC 8 IB, 38hex Set the text (literally) mode 

for the next single character. 
This allows the display of 
characters from 01hex (01dec) 
thru lFhex (31dec) on the 
screen. Thus the BELL 
character (07hex, 07dec) will 
not cause the bleep, but a 
character will appear on the 
screen. 

ESC Z IB, 5Ahex Identify terminal type. The 

27, 90dec VT52 emulator will return 

ESC\Z in the next character 
input request. 

ESC ] IB, 5Dhex Return the value of the 25th 

27, 93dec line. The next series of 

character input requests will 
receive the current contents 
of the 25th line. 



2-8 Rev - 3/23/83 



Supplemental Technical Reference Material 

2.3.5 Special Functions — continued 

Escape 
Sequence/Function ASCII Code Performed Function 

ESC V *!' 7?k<! x E "able wrap-around at the end 

it, 118dec of each screen line. A 

character placed after column 
80 of a line will be placed on 
the next line at column 1. 

Disable wrap-around at the end 
of each line. 

Reset terminal emulator to the 
power-on state. This clears 
all user selected modes, 
clears the screen, and homes 
the cursor. 



ESC w 



ESC z 



IB, 


77hex 


27, 


119dec 


IB, 


7Ahex 


27, 


122dec 



ESC { 1B < 7Bhex 

27, 123dec ESC } ) . 

ESC J IB, 7Dhex 



Enable keyboard input, (see 



IB, 7Dhex Disable keyboard input. This 

27, 125dec locks the keyboard. Any 



ESC i p s IB, 69hex 

27, 105dec 



character(s) typed are ignored 
until an ESC { is issued. 



Displays banner as follows 



££ Mode 

30hex, 48dec Display entire banner 

J ex ' f^ec 1 Display company logo 

11*11' l^ QC I Dis P la y aerating system 

Jjriex, 51dec 3 Display configuration 



2 9 Rev - 3/23/83 



Supplemental Technical Reference Material 
2.4 Direct Cursor Addressing — Examples of Use 



The direct cursor addressing function is accessed by sending 
the ESC Y 1 c sequence to the screen (see section 2.3.1). 
"1" is the line number required, whose valid coordinates are 
between 1 and 24. An offset of lFhex (31decimal) must be 
added to the location required in order to correctly locate 
the cursor, "c" is the column number required, whose valid 
coordinates are between 1 and 80. An offset of lFhex 
(31decimal) must be added to the location required in order 
to correctly locate the cursor. 

Note that the true offset requirement of 20hex (32decimal) 
for line and column may only be used accurately when the 
line number is viewed to 23, and the column number to 
79. 

The line/column number requested must be handled as a binary 
digit, examples of this follow: 

2.4.1 Microsoft MS-BASIC — Direct Cursor Positioning 

The following method uses offsets from line 1, column 1: 

10 PRINT CHR$(27)+"E" : REM CLEAR THE SCREEN 

20 DEF FNM$(LIN,COL)=CHR$(27)+"Y"+CHR$(31+LIN)+CHR$(31+COL) 

30 PRINT "Enter line (1-24) and column (1-80), as LINE, COL 

40 INPUT LIN, COL 

50 PRINT FNM$(LIN,COL) ; 

60 FOR I = 1 TO' 1000 :REM PAUSE BEFORE OK MESSAGE DISPLAYED 

70 NEXT I 

The alternative method, using offsets from zero is shown below: 

10 PRINT CHR$(27)+"E" :REM CLEAR THE SCREEN 

20 DEF FNM$(LIN,COL)=CHR$(27)+"Y"+CHR$(32+LIN)+CHR$(32+COL) 

30 PRINT "Enter line (0-23) and column (0-79), as LINE, COL "; 

40 INPUT LIN, COL 

50 PRINT FNM$(LIN,COL) ; 

60 FOR I = 1 TO 1000 :REM PAUSE BEFORE OK MESSAGE DISPLAYED 

70 NEXT I 



2-10 Rev - 3/23/83 



Supplemental Technical Reference Material 

2.4.2 Microsoft MACRO-86 Assembler — Direct Cursor Positioning 

line off equ 20h ;line position offset from 

col off equ 20h ;column position offset from 

esc - equ lbh ;escape character 

msdos equ 21h ; interrupt to MS-DOS 

clear_screen db esc,'E$' ;clear screen request 
dir_cur_pos_lead db esc,'Y$' ;cursor positioning lead-in 

; the cursor position required is handed down in BX 

where BH = line (0-23 binary) , BL = column (0-79 binary) 

clear_and_locate : 

mov ah,9h ; string output up to $ 

mov dx, offset clear_screen ;get the clear screen string 

int msdos ; and output it up to the $ 

the cursor position required is in BX 

add bh,line_off ;normalize line for output 

add bl,col_off ;normalize column for output 

send the direct cursor positioning lead-in 

mov ah,9h ;select screen output up to $ 

mov dx f offset dir_cur_pos_lead ;select the lead in ESC Y 
int msdos ;and output it up to $ 

now the contents of BX must be sent to the terminal emulator 

mov dl,bh ; ready the line number 

mov ah,6h ;direct console output of DL 

int msdos ;output the line coordinate 

mov dl,bl ; ready the column number 

mov ah,6h ;direct console output of DL 

int msdos ;send the column coordinate 

7 

; the cursor is now at the location selected in BX 



2-11 Rev - 3/23/83 



Supplemental Technical Reference Material 
2.4.3 Microsoft Pascal Compiler — Direct Cursor Positioning 



program position ( input , output) ; 

{This method uses offsets from line 0, column 0.} 

const 

clear_screen = chr(27) * chr(69); 

var 

result : array[1..4] of char; 

i, line, column : integer, 

row, col : char; 

begin 

result[l] := chr(27); {RESULT = ESC} 

result[2] := chr(89); {RESULT = "Y"} 

write (clear_screen) ; 

write (' Enter line (0-23) and column (0-79), as LINE COLUMN: '); 

readln (line, column); 

writeln (clear — screen) ; 

row := chr(32 + line); 

col := chr(32 + column); 

result[3] := row; {RESULT = ROW}. 

result[4] : = col; {RESULT = COL} 

for i := 1 to 4 do 

write (result[i]); {PRINT CURSOR TO SCREEN} 

for i := 1 to 32000 do {PAUSE} 
end . 



2-12 Rev - 3/23/83 



Supplemental Technical Reference Material 



2.5 Transmit Page — Examples of Use 



The transmit page function is accessed by sending the ESC # 
sequence to the screen (see section 2.3.5). The result of 
this sequence is that all characters on the screen, as well 
as the cursor positioning sequences required to re-create 
the screen, are sent to the keyboard buffer. Reading the 
keyboard via a normal keyboard input request will return the 
entire screen of data to the program. The screen buffer 
within the program should be at least 1920decimal bytes long 
to accomodate the entire screen - the program will need to 
perform 1920 single character inputs to empty the keyboard 
buffer. Note that the character input requests must be done 
rapidly to prevent the keyboard buffer overflowing and 
causing loss of data - note, too, that on a keyboard buffer 
overflow, the bell sounds. 

The following sample programs demonstrate the use for this 
function request: 



2.5.1 Microsoft MS-BASIC — Transmit Page 

10 DIM A$(1920) 

20 PRINT CHR$(27)+"#"; 

30 FOR I = 1 TO 1920 

40 A$(I)=INKEY$ 

50 NEXT I 

60 PRINT CHR$ (27)+" E"; 

70 FOR I = 1 TO 1920 

80 PRINT A$(I) ; 

90 NEXT I 



2-13 



Rev - 3/23/83 



Supplemental Technical Reference Material 



2.5.2 Microsoft MACRO-86 Assembler — Transmit Page 



coniof 






equ 




6h 


conin 






equ 




0ffh 


pr intf 






equ 




9h 


msdos 






equ 




21h 


buf f er_ 


_1 


eng 


th 


eq 


u 1920 



;direct console i/o function 
;console input request 
;screen o/p up to $ 
; interrupt operating system 
;entire screen count 



read_screen db 
clear__screen db 
buffer db 



;read entire screen 



sor 



lbh,'f$' ; l eau cnunc a«-Lccn 

lbh,'E$' ;clear screen/home curso 
buf fer_length dup (?) ;main buffer region 



mov 


ax , DS 




mov 


ES,ax 




mov 


di ,of f set 


buffer 


mov 


si ,di 




mov 


dx ,of f set 


read_.screen 


mov 


ah,printf 




int 


msdos 




; now read 


entire screen in to BUF 


mov 


ah, coniof 




mov 


dl , conin 




mov 


cx,buffer_ 


_length 


in_loop: 






int 


msdos 




stosb 






loop 


in_loop 




mov 


ah,printf 




mov 


dx ,of f set 


clear_scree 


int 


msdos 





now replace the screen data 

mov ex ,buf fer_ length 
mov ah, coniof 



;get buffer data segment 

; ready for store 

;get storage buffer 

;init for later use 

;read entire screen string 

;o/p it up to $ 

;call the OS 



;read from keyboard buffer 

; ready to read 

;count of chars to read 



;get a char in AL 

;save the char in BUFFER 

; and loop til buffer full 

; ready to clear the screen 

;get the string 

; and o/p it up to $ 



;get the count 

;get the o/p char function 



out__loop: 
lodsb 
mov 
int 
loop 
ret 



dl,al 
msdos 
out__loop 



get a char 

ready to go 
o/p it 
loop til buffer empty 



2-14 



Rev - 3/23/83 



Supplemental Technical Reference Material 
2.5.3 Microsoft Pascal Compiler — Transmit Page 

PROGRAM Scrnbuf; 

CONST 

clear screen = CHR (27) *CHR (69) *CHR (36) ; 

transmit_page = CHR (27) *CHR (35) *CHR ( 36) ; 

err_msg = ' ERROR$ ' ; 

direct_conio = #6; 

conin - #0FF; 

print_string = #9; 

VAR 

screen_dump : ARRAY [1. .1920] OF CHAR; 
ch : CHAR; 
i : INTEGER; 
pa ram : WORD; 
status : BYTE; 

FUNCTION DOSXQQ( command, parameter : WORD ) : BYTE; EXTERNALS- 
BEGIN 

EVAL(DOSXQQ(print_string,WRD(ADR(transmit_page) ) ) ); 

param:= BYWORD( 0, conin ) ; 
status:= DOSXQQ( direct_conio , param ); 
IF status <> THEN 
BEGIN 
i:= 1; 

WHILE status <> DO 
BEGIN 

ch:= CHR(status) ; 

screen_dump[ i] := ch; 

i:= i + 1; 

status:= DOSXQQ( direct_conio , param ); 

END; 

i : = i - 1 ; 
EVAL(DOSXQQ(print_string,WRD(ADR(clear_screen) ) ) ); 

FOR VAR J:= 1 TO i DO 

EVAL(DOSXQQ( di rect_conio , WRD (screen_dump[ J] ) ) ); 

END 

ELSE 

EVAL(DOSXQQ(print_string,WRD(ADR(err_msg) ) ) ); 

END. 



2-15 Rev - 3/23/33 



Supplemental Technical Reference Material 



CHAPTER 3 



Victor 9000 Input/Output Port Specification 



3.1 Device Connection 



There are 5 ports available on the Victor 9000 - they are as 
follows: 

2 x Serial (RS232C) - Ports A and B 

1 x Parallel (Centronics) 

2 x Parallel (control - located on CPU board) 

The ports are located on the rear of the Victor 9000 as shown in 

the following diagram: 




□I C3 



PARALLEL 
PORT 



VIDEO 
CONNECTOR 



R5232 SERIAL 
PORT A -TTY 



^g^ 



nO- 




RS232 SERIAL 
PORT B-UL1 



Figure 1 
Victor 9000 Parallel and Serial Ports 



3-1 



Rev - 3/23/83 



Supplemental Technical Reference Material 



3.2 Parallel Printer Connection 

To connect a parallel printer to the Victor 9000, a suitable 
cable is required - if the printer is supplied by Victor 
Technologies, then it will be a matter of plugging the cable into 
both machines; cables should be attached as follows: 

1) Disconnect power from both the computer and printer. 

2) Disconnect the Victor video connector (see 3.1) 

3) Attach interface cable to Victor and printer 

4) Re-attach the video connector 

5) Set the printer dip-switches as required 

3.3 Parallel Cable Requirements 

If a suitable parallel cable is not available, you will need to 
make .one - use the guidelines that follow to create your own 
cable : 

You will need a male Centronics-compatible Amphenol 57-30360 
type connector for the Victor 9000 end of the cable; use the 
type of connector suggested by the printer manufacturer for 
the printer end, in general, another male Centronics- 
compatible Amphenol 57-30360 type connector will be 
required. You will also require a length of 12-core cable 
(10 feet maximum length). 

Refer to the port layout in your printer handbook - compare this 
with the Victor 9000 parallel port layout (see C.l). If the pin 
numbers and signal requirements are the same, then construct the 
cable as follows: 

! 1 

2 2 

3 3 

4 4 

5 5 

6 6 

7 7 

8 8 

9 9 

10 10 

n ii 

16 16 

It does not matter which end of the cable is connected to 
the printer or the computer. 



3-2 Rev - 3/23/83 



Supplemental Technical Reference Material 

3.6 Operating System Port Utilities 

Victor Technologies supplies a selection of programs under 
both CP/M-86 and MS-DOS to allow the temporary selection of 
both baud rate and list device port. If you attach a printer 
to your system you may be required to perform some of the 
following steps in order to utilize the printer. Before you 
use any of the utilities discussed you need to be aware of 
the port the printer is attached to; Port A, B or Parallel. 
You will also need to know, except in the case of a parallel 
printer, what the baud rate, stop-bits and parity your 
printer is set up at. Note that many printers will start to 
lose data at baud rates above 4800, you must, therefore, 
select a baud rate that your printer can handle. 

3.6.1 SETIO - MS-DOS List Device Selection Utility 

To select the correct port for the list device you have 
attached, the SETIO program has been provided. This program 
is used as follows: 

SETIO LST = TTY - printer is attached to port A 
SETIO LST = UL1 - printer is attached to port B 
SETIO LST = LPT - printer is attached to parallel port 

It is recommended that your printer be attached to either 
port B or the parallel port. 

Once SETIO has executed, it displays a map of the ports, 
with the ones you selected highlighted on the screen - if 
this is not \corrcet, / repeat the process. 

3.6.2 STAT - CP/M-86 List Device Selection Utility 

To select the correct port for the list device you have 
attached, the STAT program has been provided. This program 
is used as follows: 

STAT LST:=TTY: - printer is attached to port A 
STAT LST:=UL1: - printer is attached to port B 
STAT LST:=LPT: - printer is attached to parallel port 

It is recommended that your printer be attached to either 
port B or the parallel port. 



3-5 Rev - 3/23/83 



Supplemental Technical Reference Material 

3.6.3 PORTSET - MS-DOS Baud Rate Selection Utility 

To select the correct baud rate for ports A or B (but this 
is not applicable to the parallel port), the PORTSET program 
is provided. This program is menu driven, and is used as 
follows : 

To the prompt type PORTSET, the screen will display a 
choice of three ports: 

1) Port A (RS232C) 

2) Centronics/Parallel Port 

3) Port B (RS232C) 

Type either 1,2 or 3. If you type 1 or 3, the next menu 
screen is displayed - this screen has baud-rate choices 
labelled A through N - select one of the baud-rates. 

3.6.4 PORTCONF - CP/M-86 Baud Rate Selection Utility 

This program is used in exactly the same manner as PORTSET 
(see 3.6.3) . 



3-6 Rev - 3/23/83 



Supplemental Technical Reference Material 

3.7 Serial Input/Ouput Ports 

The two serial input/output ports are memory mapped ports 
located in the memory segment E000hex; and they are mapped 
as follows: 

E000:40 - port A data (input/output) 
E000:41 - port B data (input/output) 

E000:42 - port A control (read/write) 
E000:43 - port B control (read/write) 

The following information is available in each port's 
control register: 

bit - rx character available 

bit 1 - not used 

bit 2 - tx buffer empty 

bit 3 - DCD 

bit 4 - not used 

bit 5 - CTS 

bit 6 - not used 

bit 7 - not used 

See Appendix C.2 for information on each port's pinouts. 

Note that writing a 10hex to the relevent control register 
allows the resensing of the modem leads (i.e. DCD and CTS) 
with their current values being updated in the port's 
control register. 

Since the Victor 9000 configures the NEC 7201 chip to 
operate in auto-enable mode, DCD (pin 8 on the port 
connector) must be ON, and CTS (pin 5 on the port connector) 
must be ON to enable the 7201's receiver and trasmitter 
respectively. RTS and DTR are always ON as a convenient 
source for an RS-232C control ON (+11 volts) . 



3-7 Rev - 3/23/83 



Supplemental Technical Reference Material 

3.8 Baud Rate and Data Input/Output - Sample Programs 

The means of establishing the baud rates, receiving and 
transmitting data are discussed in the following programs. 
The serial port's control register are discussed in 3.7 - 
the means of accessing them is better described with the 
programming examples that follow. 

The following programs provide information on how to set up 
the baud rates on the serial ports (A and B) - they also 
demonstrate how to send and receive data from these ports. 



3-8 Rev - 3/23/83 



Supplemental Technical Reference Material 



3.8.1 Microsoft MS-BASIC — Baud Rate and Data Input/Output 

The following program may be used in place of PORTSET or 
PORTCONF if you omit the lines 500 through 740 inclusive. 



10 DIM RATE (14) 

20 REM Select the data port 

30 PRINT CHR$ (27)+"E" ; : REM Clear the screen 

40 PRINT : PRINT : PRINT : PRINT 

50 PRINT "The serial ports are:" : PRINT 

60 PRINT ," A - Serial Port TTY - left hand on back" 

70 PRINT ," B - Serial Port ULl - right hand on back" 

80 PRINT : PRINT 

90 PRINT /"Select the port you want to use, A or B "; 

100 PORT$ = INPUT$(1) 

110 PRINT PORT$ 

120 IF PORT$ 

130 IF PORT$ = "A" THEN STATI0=2 

= "b" THEN STATI0=3 

= "B" THEN STATI0=3 



DAT I 0=0 
DAT I 0=0 
DAT I 0=1 
DAT I 0=1 



GOTO 210 
GOTO 210 
GOTO 210 
GOTO 210 



240 


PRINT 


," 1 = 


250 


PRINT 


," 2 = 


260 


PRINT 


," 3 = 


270 


PRINT 


," 4 = 


280 


PRINT 


," 5 = 


290 


PRINT 


," 6 = 


300 


PRINT 


," 7 = 


310 


PRINT 


: PRINT 



140 IF P0RT$ 
150 IF P0RT$ 
160 GOTO 30 

200 REM Set the baud rate 

210 PRINT CHR$ (27)+"E"; : REM Clear the screen 
220 PRINT : PRINT : PRINT : PRINT 

230 PRINT "The available baud rates are as follows:" : PRINT 

300 baud" 
600 baud" 

1200 baud" 

2400 baud" 

4800 baud" 

9600 baud" 
19200 baud" 

PRINT 

320 PRINT "Select one of the above baud rates: " ; 
33 RATE$ = INPUT$(1) 
340 IF RATE$ > "7" THEN 210 
350 IF RATE$ < "1" THEN 210 
360 PRINT RATE$ 

400 REM Now set the baud rate in the port selected 
410 DEF SEG = &HE002 

420 IF DATIO = THEN POKE 3,54 : IF DATIO = 1 THEN POKE 3,118 
430 FOR I = 1 TO 14 

440 READ RATE (I) : REM Set the baud rate matrix 
450 NEXT I 

460 NODE = (VAL(RATE$)-1)*2+1 
470 POKE DATIO, RATE (NODE) 
480 POKE DATIO, RATE (NODE+1) 

— Listing Continued on Next Page — 



3-9 



Rev - 3/23/83 



Supplemental Technical Reference Material 



500 REM Now data may be entered and sent down line 

510 PRINT CHR$ (27)+"E"; : REM Clear the screen 

520 PRINT : PRINT ,"Baud rate established" 

530 PRINT : PRINT : PRINT 

540 DEF SEG = &HE004 

550 PRINT /'Enter data to be sent down line with return to end" 

560 PRINT ,"or just press return to receive data -" 

570 PRINT 

580 TEXT$=INKEY$ 

590 IF TEXT$="" THEN 630 

600 IF TEXT$=CHR$(13) THEN PRINT TEXT$ :TEXT$=CHR$ (126) :GOTO 620 

610 PRINT TEXT$; 

620 GOSUB 650 

630 GOSUB 690 

640 GOTO 580 

650 STATUS=PEEK (STATIO) : STATUS=STATUS AND 4 

660 IF STATUS = THEN 650 :REM Waiting to send char 

670 POKE DATIO, ASC(TEXT$) 

680 RETURN 

690 STATUS = PEEK (STATIO) : STATUS = STATUS AND 1 

700 IF STATUS = THEN RETURN : REM No char available 

710 DATUM = PEEK (DATIO) : DATUM = DATUM AND 127 

720 IF DATUM = 126 THEN PRINT CHR$(13) : RETURN 

730 PRINT CHR$ (DATUM); : REM Show char from line 

740 RETURN 

1000 DATA 0,1,&H80,0,&H40,0,&H20,0,&H10, 0,8, 0,4,0 



3-10 



Rev - 3/23/83 



Supplemental Technical Reference Material 



3.8.2 MACRO-86 Assembler — Baud Rate and Data Input/Output 

The following assembler modules may be included in a program 
and called with the stated parameters. The character input 
and output modules will need re-coding if your program 
requires status return rather than looping for good status. 



rates db 0h,lh,80h,0h ;baud rate conversion table 

db 40h,0h,20h,0h 

db 10h,0h,8h,0h 

db 4h,0h 

********************************************************** 



Routine: BAUD_SET 

Function: To set Port A or B baud rate 

Entries: AL = 0=PortA, l=PortB 

DX = 0=300 baud, 1=600 baud, 2=1200 baud 
3=2400 baud, 4=4800 baud, 5=9600 baud 
6=19200 baud 

Returns: None 

Corruptions: ES, AX, BX, CX, DX 
********************************************************** 



baud_set: 

mov 

mov 

mov 

or 

jnz 

i 

mov 
jmp 



set B: 



mov 



set_rate : 

mov 
shl 
add 
mov 
xor 
mov 
mov 
mov 
ret 



cx,0e002h 

ES,cx 

bx,3 

al ,al 

set_B 

byte ptr ES: [bx] ,36h 
short set rate 



byte ptr ES: [bx] ,76h 



bx, offset rates 

dx,l 

bx ,dx 

dx, [bx] 

bh,bh 

bl,al 

byte ptr ES: [bx] ,dl 

byte ptr ES: [bx] ,dh 



;get the segment 
;init the segment register 
;point to counter control 
;see if Port A or B to be set 
;AL > 0, so set Port B counter 

;set it for port A 

; and input the Baud rate 



;set port B counter 



get the baud rate table 

DX = DX * 2 for words 

point to baud rate entry 

get the baud rate 

BH=0 

get the required port 

send first byte 

and last byte of rate 
baud rate established 



3-11 



Rev - 3/23/83 



Supplemental Technical Reference Material 



3.8.2 Baud Rate and Data Input/Output — continued 



********************************************************** 

Routine: SEND_CHAR 

Function: To output a character to a serial port 

Entries: AL = 0=PortA, l=PortB 
AH = Character to send 

Returns: None 

Corruptions: ES, AX, BX 

********************************************************** 



send_char : 




mov 


bx,0e004h 


mov 


ES,bx 


xor 


bh,bh 


mov 


bl,al 


add 


bl,2 



in_status_loop: 

mov al ,ES: [bx] 

and al ,4h 

jnz in_status_loop 



sub 
mov 
ret 



bl,2 

ES: [bx] ,ah 



; get the port segment 

;set the segment 

; BH=0 

;get the required port 

; required port status 



;get the status 
;mask for TX empty 
;not ready - loop 

;point to data 
/character gone 



3-12 



Rev - 3/23/83 



Supplemental Technical Reference Material 



3.8.2 Baud Rate and Data Input/Output — continued 



********************************************************** 

Routine: GET_CHAR 

Function: To input a character from a serial port 

Entries: AL = 0=PortA, l=PortB 

Returns: AL = character 

Corruptions: ES, AX, BX 
********************************************************** 



get_char 



mov 


bx,0e004h 


mov 


ES # bx 


xor 


bh,bh 


mov 


bl,al 


add 


bl,2 



out_status_loop : 

mov al ,ES: [bx] 



and 


al,lh 


jnz 


out__status_loop 


sub 


bl,2 


mov 


al,ES: [bx] 


ret 





;get the port segment 

;set the segment 

;BH=0 

;get the required port 

; required port status 



;get the status 

;mask for RX character avail 

;not ready - loop 

; point to data 
;character received 



3-13 



Rev - 3/23/83 



Supplemental Technical Reference Material 



APPENDIX A 



A.l ASCII Codes Used in the Victor 9000 Computer 



The American Standard Codes for Information Interchange 
(ASCII) has been defined to allow data communication between 
computers, their peripherals, and other computers. The other 
major code standard is the Extended Binary Coded-Decimal 
Interchange Code (EBCDIC) used on some mainframe computers. 
The Victor 9000 computer is designed to function in ASCII, 
but communication software is available that allows the 
Victor 9000 to receive EBCDIC data and have it translated 
into ASCII, and vice versa. 

The following table contains the 7-ASCII codes and their 
meanings. It is called 7-ASCII as only 7-bits of the 
potential 8-bits are used to carry data; the "spare" bit is 
utilized in the Victor 9000 computer to support characters 
not otherwise available in the 7-ASCII set. 



An Eight Bit Byte is pictured as follows: 

[ 7 ] [ 6 ] [ 5 ] [ 4 ] [ 3 ] [ 2 ][ 1 ] [ ] 



the bits are numbered through 7 (which adds up to eight 
bits), and it is the 8th bit (bit 7 in computer jargon) 
which is not used in 7-ASCII. 



A-l Rev - 3/23/83 



Supplemental Technical Reference Materi 



al 



A. 2 ASCII / HEXADECIMAL / DECIMAL Character Set 

ASCII Hex Dec ASCII Hex Dec ASCII Hex Dec ASCII Hex Dec 



NUL 


00 


00 


space 


20 


32 


@ 


40 


64 


N 


60 


96 


SOH 


01 


01 


j 


21 


33 


A 


41 


55 


a 


61 


97 


STX 


02 


02 


n 


22 


34 


B 


42 


66 


b 


62 


98 


ETX 


03 


03 


# 


23 


35 


C 


43 


67 


c 


63 


99 


EOT 


04 


04 


$ 


24 


36 


D 


44 


68 


d 


64 


100 


ENQ 


05 


05 


% 


25 


37 


E 


45 


69 


e 


65 


101 


ACK 


06 


06 


& 


26 


38 


F 


46 


70 


f 


66 


102 


BEL 


07 


07 


i 


27 


39 


G 


47 


71 


g 


67 


103 


BS 


08 


08 


( 


28 


40 


H 


48 


72 


h 


68 


104 


HT 


09 


09 


) 


29 


41 


I 


49 


73 


i 


69 


105 


LF 


0A 


10 


* 


2A 


42 


J 


4A 


74 


j 


6A 


106 


VT 


0B 


11 


+ 


2B 


43 


K 


4B 


75 


k 


6B 


107 


FF 


0C 


12 


r 


2C 


44 


L 


4C 


76 


1 


6C 


108 


CR 


0D 


13 




2D 


45 


M 


4D 


77 


m 


6D 


109 


SO 


0E 


14 


• 


2E 


46 


N 


4E 


78 


n 


6E 


110 


SI 


0F 


15 


/ 


2F 


47 





4F 


79 


o 


6F 


111 


DLE 


10 


16 





30 


48 


P 


50 


80 


P 


70 


112 


DC1 


11 


17 


1 


31 


49 


Q 


51 


81 


q 


71 


113 


DC 2 


12 


18 


2 


32 


50 


R 


52 


82 


r 


72 


114 


DC 3 


13 


19 


3 


33 


51 


S 


53 


83 


s 


73 


115 


DC 4 


14 


20 


4 


34 


52 


T 


54 


84 


t 


74 


116 


NAK 


15 


21 


5 


35 


53 


U 


55 


85 


u 


75 


117 


SYN 


16 


22 


6 


36 


54 


V 


56 


86 


V 


76 


118 


ETB 


17 


23 


7 


37 


55 


W 


57 


87 


w 


77 


119 


CAN 


18 


24 


8 


38 


56 


X 


58 


88 


X 


78 


120 


EM 


19 


25 


9 


39 


57 


Y 


59 


89 


y 


79 


121 


SUB 


1A 


26 


J 


3A 


58 


Z 


5A 


90 


z 


7A 


122 


ESC 


IB 


27 


} 


3B 


59 


[ 


5B 


91 


{ 


7B 


123 


FS 


1C 


28 


< 


3C 


60 


\ 


5C 


92 


1 


7C 


124 


GS 


ID 


29 


= 


3D 


61 


] 


5D 


93 


} 


7D 


125 


RS 


IE 


30 


> 


3E 


62 


a 


5E 


94 


*■ 


7E 


126 


US 


IF 


31 


p 


3F 


63 




5F 


95 


DEL 


7F 


127 



A-2 Rev - 3/23/83 



Supplemental Technical Reference Material 



APPENDIX B 
B.l 



Victor 9000 Keyboard Layout 



Legend : 

Shaded region indicates unused key switch 



k 



32 



53 



73 



94 
□ 



y- y .y~. . . y~~ — ~y~ 



iTM¥Mi?TYri5l^^ 

33, M3TlYb5M^M37lY[^M39^ 



25 W 26 V 27 



J2ppp 



74 



57 



58 




60 



& 



35 |Y| 96 

i m 



83Y84 



m*L 



86 



37 



V 



17 



67 



w 48 



38 



£8 



V 



88 w 83 I s 
Z3C 



33 



V 



_y 






28 



30 



29 



Mi^M 



V 



V 



KtWf7T>J72l 



31 



V 



100 i^M' 



v 



V 



ioe v 

V 



31 



V 



33 

H 



Figure 2 
Victor 9000 Keyboard Configuration 
with Key Switch Positions and Logical Key Numbers 



B-l 



Rev - 3/23/83 



Supplemental Technical Reference Material 



APPENDIX C 



C.l 



Victor 9000 Parallel (Centronics) Port 



Pin Number Signal 

1 Data Strobe 

2 Data 1 

3 . Data 2 

4 Data 3 

5 Data 4 

6 Data 5 

7 Data 6 

g Data 7 

9 Data 8 

10 ACK 

H Busy 

17 Pshield 

12,18,30,31 Not connected 

Remaining GND 



C-l 



Rev - 3/23/83 



<P 



Supplemental Technical Reference 



Mate rial 



C.3 Victor 9000 IEEE-488 Port 



The Victor 9000 IEEE-488 cable attaches to the parallel port - 
the pin number refers to the actual computer port connector; the 
IEEE-488 pin number refers to the standard IEEE-488 pin-out as 
they must attach to the parallel port. 

The IEEE pin numbers referred to with the (**z) are wires that 
are to be bound together as twisted pairs. 

Pin Number IEEE Signal IEEE Pin Number 



1 DAV — 

19 GND -- 

2 DI01 — 

3 DI02 — 

4 DI03 — 

5 DI04 -- 

6 . DI05 — 

7 DI06 -- 

8 DI07 — 

9 DI08 — 

10 NRFD — 

28 GND — 

H SRQ — 

29 — GND — 

13 NDAC — 

33 GND — 

15 EOI — 

17 shield 

34 ren — 

35 ATN — 

16 GND — 

36 iFC - 

27 GND - 

20 — GND — 



6 


(**a) 


18 


(**a) 


1 




2 




3 




4 




13 




14 




15 




16 




7 


(**b) 


19 


(**b) 


10 


(**c) 


22 


(**c) 


8 


(**d) 


20 


(**d) 


5 




12 




17 




11 


(**e) 


23 


(**e) 


9 


(**f) 


21 


(**f) 


24 





C-3 ' Rev - 3/23/83 



Supplemental Technical Heterence Material 

C.4 Victor 9000 Control Port 

Pin Number Signal 

I -12V 

2 12V 

3 Not connected 

4 Not connected 

5 +12V 

6 +12V 

7 +5V 

8 +5V 

9 Not connected 

IQ Light Pen 

H GND 

12 CA1 

13 GND 

14 CA2 

15 GND 

16 PA0 

17 GND 

18 PA1 

19 GND 

20 PA2 

21 GND 

22 — PA3 

23 GND 

24 PA4 

25 GND 

26 PA5 

27 GND 

28 PA6 

29 GND 

30 PA7 

31 GND 

32 PB0 

33 GND 

34 PBl 

35 GND 

36 PB2 

37 GND 

38 PB3 

39 GND 

40 PB4 

41 GND 

42 PB5 

43 GND 

44 PB6 

45 GND 

46 PB7 / CODEC Clock Output 

47 — GND 

48 CB1 

49 GND 

50 CB2 



C-4 Rev - 3/23/83 



Supplemental Technical Reference Material 

APPENDIX D 

D.l Example Assembler Shell Program for MS-DOS Interfacing 

The Microsoft MACRO-86 assembler follows closely the Intel ASM-86 
specifications. The operating system interfacing technique is via 
a straightforward interrupt (INT 21Hex), with the required 
operational parameter in the AH register. MS-DOS does not corrupt 
any registers other than the ones used for the sending or 
receiving of data. An example of the running and exiting program 
technique, plus the required assembler directives, follows. The 
program example is for the small memory model; but it will apply 
equally well to the compact or large memory model. The 8080 
memory model is not recommended as it results in poor usage of 
the potential of the 8086/8088 processor. At link time, this 
programming example will generate an .EXE file - the header 
information on this file type will be found in E.l. 

title Example of MS-DOS/MACRO-86 Assembly Programming 

dgroup group data 
cgroup group code 

msdos equ 00021h ; interrupt to operating system 

data segment public 'data' 
;###### insert your data here ###### 
data ends 

code segment public 'code' 

assume CS : cgroup, DS : dgroup 

example proc near ;origin of code 

begin: 

push ES ;save return segment address 

call run_module ,-run the program 

run ends - select close down 

exit proc far ;close down code 

xor ax, ax ;zero for PSP:0 

push ax ;save for far return 

ret ;and close down 

exit endp ;close down code ends 

run_module : 

mov ax, DATA ;get the data segment origin 

mov DS,ax ; and initialize the segment 

;##### insert your code at this point ###### 

ret ;return to exit module 

example endp 
code ends 
end 



D-l Rev - 3/23/83 



Supplemental Technical Reference Material 

D.2 Example Assembler Shell Program for CP/ M-86 Interfacing 

The Digital Research ASM-86 assembler does not follow the 
standard Intel ASM-86 structure - this makes for a more complex 
task when transferring assembler programs between the CP/M-86 and 
the MS-DOS operating systems. The operating system interfacing 
technique is via a. straightforward interrupt (INT E0Hex), with 
the required operational parameter in the CL register. CP/M-86 
corrupts all registers, excepting the CS and IP - it is, 
therefore, recommended that all registers be pushed prior to the 
INT E0Hex being issued. An example of the running and exiting 
program technique, plus the required assembly directives, 
follows. The program example follows that of the MS-DOS MACRO-86 
example. At GENCMD time, this programming example will generate a 
.CMD file - the header information on this file type is shown in 
the System Guide for CP/M-86. 

title 'Example of CP/M-86/ASM-86 Programming' 

reset equ 00000h ;system reset function 

cpm equ 000e0h interrupt to operating system 



cseg 



begin: 



call run_module ;run the program 
run ends - select close down 

mov cl, reset ;select system reset 

mov dl,00h ;select memory recovery 

int cpm ;return to operating system 

run_module: 

;##### insert your code at this point ###### 

ret ; return to exit module 

dseg 
;#«*#* insert your data here ##### 
end 



D-2 Rev - 3/23/33 



Supplemental Technical Reference Material 

E .! MS-DOS — EXE File Header Structure 

The Microsoft linker outputs .EXE files in a relocatable 
format, suitable for quick loading into memory and 
relocation. EXE files consist of the following parts: 

o Fixed length header 

o Relocation table 

o Memory image of resident program 

A run file is loaded in the following manner: 

o Read into RAM at any paragraph (16 byte) boundary 
o Relocation is then applied to all words described by 
the relocation table. 

The resulting relocated program is then executable. 
Typically, programs using the PL/M small memory model have 
little or no relocation; programs using larger memory models 
have relocation for long calls, jumps, static long pointers, 
etc. 

The following is a detailed description of the format of an 
EXE file: 



E-l Rev - 3/23/83 



Byte 


Name 


+ 1 


wSignature 


2 + 3 


cbLastp 



Supplemental Technical Reference Material 
Microsoft -EXE File Main Header 



Function 
Must contain 4D5Ahex. 

Number of bytes in the memory image 
modulo 512. If this is then the last 
page is full, else it is the number of 
bytes in the last page. This is useful 
in reading overlays. 

4+5 cpnRes Number of 512 byte pages of 

memory needed to load the resident and 
the end of the EXE file header. 

6+7 irleMax Number of relocation entries in the 

table. 

8+9 cparDirectory Number of paragraphs in EXE file 

header. 

A+B cparMinAlloc Minimum number of 16-byte paragraphs 

required above the end of the loaded 
program. 

C+D cparMaxAlloc Maximum number of 16-byte paragraphs 

required above the end of the loaded 
program. 0FFFFh means that the program 
is located as low as possible into 
memory. 

Initial value to be loaded into SS 
before starting program execution. 
Initial value to be loaded into SP 
before starting program execution. 
Negative of the sum of all the words 
in the run file. 

Initial value to be loaded into IP 
before starting program execution. 
Initial value to be loaded into CS 
before starting program execution. 
Relative byte offset from beginning of 
run file to the relocation table. 
Number of the overlay as generated by 
LINK-86. The resident part of a 
program will have iov = 0. 

The relocation table follows the fixed portion of the run 
file header and contains irleMax entries of type rleType, 
defined by: 

rleType bytes 0+1 ra 

bytes 2+3 sa 

Taken together, the ra and sa fields are an 8086/8088 long 
pointer to a word in the EXE file to which the relocation 
factor is to be added. The relocation factor is expressed as 
the physical address of the first byte of the resident 
divided by 16. Note that the sa portion of an rle must first 

E-2 Rev - 3/23/83 



E+F 


saStack 


10 + 11 


raStacklnit 


12+13 


wchksum 


14 + 15 


raStart 


16+17 


saStart 


18 + 19 


rbrgrle 


1A+1B 


iov 



Su ppleme 



ntal Technical Re 



[erence Mated 



ial 



it in turn 



be 
po 
ov 
the 



£lrs t 512 byte bounty 



V.Vidint into the 



*» "IS"." tbe^relo/aa- table 

the end o£ tne 

The layout of the 



EXE file 1S: 



28-byte Header 
Relocation Table 

padding «200hex bytes) 

memory image 



E-3 



a - 1/23/33 
Rev .J/* J / 



Supplemental Technical Reference Material 
F l Victor 9000 Technical Specification 

Processor 

o Intel 8088 16-bit microprocessor 

o 128k bytes RAM internally upgradeable to 896k bytes 

o 4k bytes Auto-boot ROM (read only memory) 

o 4 internal expansion slots for plug-in card options 

o 2 x RS232C serial communications ports 

o 1 x Parallel (Centronics) or IEEE-488 port Krtar ,n 

o 2 x Parallel user port (50-way KK Connector on CPU board) 

Dl o Pl 25 linTx 80 column screen / 50 line x 132 column screen 
o 12" CRT. Green p39 phosphor 

o Adjustable horizontal viewing angle (+ 45 degree swivel 
o Adjustable vertical viewing angle (0 deg to 11 deg tilt) 

Fl o PP StandIrd 5 1/4-inch, single-sided 96 TPI dual disk drives, 
with a maximum capacity of 600k bytes per drive, 
o Optional 5 1/4-inch, double-sided 96 TPI dual disk drives, 

with a maximum capacity of 1200k bytes per drive, 
o Optional single 10,000k byte Hard Disk - non-removable; with 
single 5 1/4-inch, double sided 96 TPI disk drive with a 
maximum capacity of 1200k bytes. 

Single-sided floppy drive offers 80 tracks at 96 TPI 
Double-sided floppy drive offers 160 tracks at 96 TPI 
Floppy drives have 512 byte sectors; utilising a GCR, 10-bit 
recording technique. 

Floppy access times: 

2 micro-second per bit data transfer rate, with an 
interleave factor of 3. Average seek time is 
approximately 90 mi 1 1 i-seconds. 

Hard Disk access times: 

0.2 micro-second per bit data transfer rate, with an 
interleave factor of 5. Average seek time is 
approximately 100 milli-seconds. 



F _l Rev - 3/23/83 



Supplemental Technical Reference Material 



F.2 



Victor 9000 Physical Specifications 



Mainframe Assembly 



Height 


Width 


Depth 


Weight (approx) 


178 mm 


422 mm 


356 mm 


12.6 kg 


7 in 


16.6 in 


14 in 


281 lbs 



Display Assembly 

Height Width 

264 mm 326 mm 

10.4 in 12.9 in 



Depth 
339 mm 
13.4 in 



Weight (approx) 
8.1 kg 
18 lbs 



Keyboard Assembly 



Height 


Width 


Depth 


Weight (approx) 


45 mm 


483 mm 


203 mm 


1.5 kg 


1.8 in 


19 in 


6.4 in 


3 lbs 



System Assembly 



Height 


Width 


Depth 


Weight (approx) 


457 mm 


48 3 mm 


559 mm 


22.2 kg 


18 in 


19 in 


20.4 in 


49 lbs 



Width without the keyboard module is 396 mm / 15.6 in 



F-3 



Rev - 3/23/83 



128K Memory Configurations 

in&^oo J hows the 1 Megabyte memory space partitioned 
into 128K segments. Switch settings (SW) are shown for 
all possible memory configurations. Figure 2 shows physical 
location of Switches on the 128K memory board 



6*0 



FFFF:F 
876 — E000:0 

DFFF:F 
768 C0OO:0 

BFFF:F 
-A000:F 

9FFF:F 
S~/2 8000:0 

-»— 7FFF:F 

3vY 6000:0 

_ 5FFF:F 

ZS6— 4000:0 

3FFF:F 
/Z9 — 2000:0 

1FFF:0 
0000:0 



ROM.IO 




6 




5 




4 




3 




2 




1 


I SW1.8 

|l2BK 


SYSTEM 
RAM 





SW2.8 







SW4,8 

128K 


SW3.8 

128K 











SW6.8 

128K 


SW5.8 

128K 







Figure 1 : Memory Space Segments 




7$ 



128K MEMORY 



Figure 2: Memory Configuration Switches 



V1CT#R 



380 E, Pueb,o Rd„ Scotts Valley, CA 95066 USA Telephone 408/438-6680 



Part Number 102545-01 



DATA SHEET 



Page 1 of 1 



Auxiliary PCB Installation Instructions 

The following steps are required to install auxiliary PC boards in the processor. The auxiliary PC 
board connectors are located on the right side of the processor unit between the speaker and 
the fan (see Figure 1). 

1. Remove power from the system. 

2. Disconnect and carefully remove the CRT and keyboard. 

3. Remove the rear panel cover (4 screws). 

4. Slide the top cover back and out of the front cover. 

5. Remove the auxiliary PC board retainer (see Figure 1). 

6. Insert the auxiliary PC board into the socket WITH THE COMPONENT SIDE OUT. 

7. Reinstall the auxiliary PC board retainer. 

8. Reinstall the top cover under the front cover. 

9. Reinstall the rear panel cover (4 screws removed in 3). 

10. Carefully install and connect the CRT and keyboard. 

11. Connect power to the system. 



AUX PCB INSTALLATION INSTRUCTIONS 



FRONT 




REAR 



PCB RETAINER — ' ^-COMPONENT SIDE OUT 

MAINFRAME WITH COVER REMOVED 



Figure 1: Processor Unit with Cover Removed 



Part Number 102849-01 



V1CT#R 



Telephone (408) 438-6680 

380 El Pueblo Road 

Scotts Valley, CA 95066 USA 



DATA SHEET 



256K Memory Configurations 

Figure 1 shows the 1 Megabyte memory space partitioned 
into 128K segments. Switch settings (SW) are shown for 
possible memory configurations. Figure 2 shows physical 
locations of switches on the 256K memory board. 



FFFF:F 
E000:0 

DFFF:F 
C000:0 

BFFF:F 
A000:F 

9FFF:F 
8000:0 

7FFF:F 
6000:0 

5FFFF 
4000:0 

3FFF:F 
2000:0 

1FFF.0 
0000:0 



ROM.IO 
37 k 


„ 6 


5 


f<z* 


3 
3gy- 


„ 2 
2CC 


t2St 1 


SYSTEM 
RAM 




<? AM" 


- 


SW3,4 

256K 


SW2.3 

256k: — 









^ '■-::.-. , 


' 


SW5.6 

256K 


SyV4,5 j 

256K 









H***T>iSH wo/ngwefr &>Mt> &*VS "+0*0 



Figure 1 : Memory Space Segments 




256K MEMORY 



Figure 2: Memory Configuration Switches